home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / slrn / slrn_src / src / group.h < prev    next >
C/C++ Source or Header  |  1999-05-14  |  3KB  |  92 lines

  1. /* Copyright (c) 1998 John E. Davis (davis@space.mit.edu)
  2.  *
  3.  * This file is part of slrn.
  4.  *
  5.  * Slrn is free software; you can redistribute it and/or modify it
  6.  * under the terms of the GNU General Public License as published by the
  7.  * Free Software Foundation; either version 2, or (at your option) any
  8.  * later version.
  9.  * 
  10.  * Slrn is distributed in the hope that it will be useful, but WITHOUT
  11.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13.  * for more details.
  14.  * 
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with Slrn; see the file COPYING.  If not, write to the Free
  17.  * Software Foundation, 59 Temple Place - Suite 330, 
  18.  * Boston, MA  02111-1307, USA.
  19.  */
  20.  
  21. extern int slrn_select_group_mode (void);
  22. extern void slrn_group_quit (void);
  23. extern void slrn_select_next_group (void);
  24. extern void slrn_select_prev_group (void);
  25. extern int slrn_group_select_group (void);
  26. extern int slrn_read_newsrc (int);
  27. extern int slrn_write_newsrc (void);
  28. extern void slrn_mark_article_as_read (char *, long);
  29. extern void slrn_check_new_groups (int);
  30. extern void slrn_init_group_mode (void);
  31. extern void slrn_get_group_descriptions (void);
  32. extern int slrn_read_group_descriptions (void);
  33. extern SLKeyMap_List_Type *Slrn_Group_Keymap;
  34. extern void slrn_post_cmd (void);
  35. extern unsigned int slrn_group_up_n (unsigned int);
  36. extern unsigned int slrn_group_down_n (unsigned int);
  37. extern int slrn_group_search (char *);
  38. extern void slrn_catchup_group (void);
  39. extern void slrn_uncatchup_group (void);
  40.  
  41. typedef struct Slrn_Range_Type 
  42. {
  43.    struct Slrn_Range_Type *next;
  44.    struct Slrn_Range_Type *prev;
  45.    int min, max;
  46. } Slrn_Range_Type;
  47.  
  48. typedef struct Slrn_Group_Type
  49. {
  50.    struct Slrn_Group_Type *next;
  51.    struct Slrn_Group_Type *prev;
  52.    unsigned int flags;
  53. #define GROUP_UNSUBSCRIBED        0x001
  54. #define GROUP_NEW_GROUP_FLAG        0x002
  55. #define GROUP_HARMLESS_FLAGS_MASK     0x0FF
  56. #define GROUP_HIDDEN            0x100
  57. #define GROUP_TOUCHED            0x200
  58. #define GROUP_PROCESSED            0x400
  59.  
  60. #define MAX_GROUP_NAME_LEN 80
  61.    char name[MAX_GROUP_NAME_LEN + 1];
  62.    unsigned long hash;
  63.    struct Slrn_Group_Type *hash_next;
  64.    
  65.    Slrn_Range_Type range;               /* the first range corresponds to
  66.                         * what the server has.  next ranges
  67.                         * correspond to what has been read.
  68.                         */
  69.    int unread;
  70.    char *descript;               /* description of the group */
  71. }
  72. Slrn_Group_Type;
  73.  
  74. extern Slrn_Group_Type *Slrn_Group_Current_Group;
  75. /* See important comment in group.c about this. */
  76. extern void slrn_add_group_ranges (Slrn_Group_Type *, int, int);
  77.  
  78. extern char *Slrn_Group_Help_Line;
  79.  
  80. extern int Slrn_Groups_Dirty;
  81. extern int Slrn_Group_Display_Descriptions;
  82. extern int Slrn_Group_Description_Column;
  83. extern int *Slrn_Prefix_Arg_Ptr;
  84. extern int Slrn_No_Backups;
  85. extern int Slrn_Unsubscribe_New_Groups;
  86. extern int Slrn_List_Active_File;
  87. extern int Slrn_Query_Group_Cutoff;
  88. extern int Slrn_Prompt_Next_Group;
  89. extern int Slrn_Use_Xgtitle;
  90. extern int Slrn_Write_Newsrc_Flags;
  91. extern int Slrn_Display_Cursor_Bar;
  92.